PURE · Poppy

Poppy Foundation

The stack beneath her — every underlying item, documented

A great assistant needs a known foundation. This is the full technology base Poppy is built on: the model, the runtime, the data layer, the MCP fleet, identity, comms, scheduling, storage, connectors, hosting and security — sourced live from the platform on 2026-06-27.

Model Claude (Anthropic) Runtime Supabase Edge · Deno DB Postgres 17.6 282 tables · 974 functions 34 crons · 87 MCP tools 15 connectors
At a glance

The foundation, top to bottom

Poppy is the persona at the top. Everything below is what makes her work — each layer depends on the one beneath it.

Poppypersona
The named assistant — voice, brand rules, the conversation users have.
Brainchat fn v26
supabase/functions/chat — the Deno Edge Function that runs the Claude tool-use loop and gates writes.
Intelligencemodel
Anthropic Claude via api.anthropic.com — reasoning, vision, native web search.
Tool planeMCP fleet
pure-mcp + 6 sibling servers — 87 tools / 974 RPCs she acts through, gated.
Knowledgegrounding
Dictionary, memory, surfaces, board, deals, 1.49M listings — what she knows.
Data & infraSupabase
Postgres 17.6 + RLS, Edge runtime, Storage, cron scheduler, Vault secrets.
Edge & hostdelivery
Netlify static hosting + GitHub source + connectors + identity/auth.
Layer · intelligence

The model

Anthropic Claude

Reasoning engine

  • Default claude-3-5-sonnet-20241022 — overridable via ANTHROPIC_MODEL
  • Endpoint api.anthropic.com/v1/messages · version 2023-06-01
  • Vision (base64 image blocks) + native web_search (max 5/turn)
  • Key ANTHROPIC_API_KEY set 2026-06-22, server-side only
Routing & cost (today)

One model, metered estimates

  • Single model for all chat; board stamps per-ticket model (Haiku/Sonnet/Opus)
  • Est. per ticket: Haiku $0.50 · Sonnet $3 · Opus $12
  • Soft cap $50/lane/day, alert at 90% — hard-stops when MCP routes calls
  • v2: live best-model-per-task router + real metering
Layer · runtime

Compute — Supabase Edge Functions (Deno)

Poppy's brain and the whole serverless tier run as Deno Edge Functions. ~23 are deployed; 16 are the canonical core.

Poppy's brain: the chat function (v26) holds the model key, assembles the system prompt, runs the agentic loop, and emits {reply, ticket, approvals}. Everything else is a supporting function.
FunctionRole
chatPoppy's brain — Claude tool-use loop + gated writes
pure-mcpCore ops gateway (JSON-RPC 2.0, Bearer auth) — board/memory/QA/deal/dict/cron…
pure-comms · resend-emailOutbound email (Resend) + SMS (Twilio) + notifications
webauthn-verify · pure-passkey · access-guardPasskey/WebAuthn auth + access enforcement
puresign · trustseal-anchor · audit-chainE-signature + tamper-evident audit anchoring
mls-intake · offers-analyze · call-intel · utility-extractRESO/RETS intake, offer analysis, call + document AI
billing · leads · pure-link · deploy-hook · error-logBilling, lead routing, URL shortener, deploy log, error capture
Layer · data

The data layer — Supabase Postgres

17.6
PostgreSQL engine
282
tables
974
functions / RPCs
1.49M
live MLS listings
Postgres extensions (the engine's powers)

What the DB can do natively

pg_cron — schedulerpg_net — outbound HTTPpg_trgm — fuzzy search postgis — geopgcryptosupabase_vault — secrets postgres_fdw + wrappers — external datauuid-ossppg_stat_statements — perf
Security model

RLS on one identity, many hats

  • Row-Level Security keyed to auth.uid() + hats from pure_permissions
  • Agent access via Composio (privileged); app via pure-db.js anon key + RLS
  • SECURITY DEFINER RPCs for gated writes; every call audited to audit_log
  • Nightly rls-watchdog scans for drift from baseline
Layer · tools & knowledge

How she acts & what she knows

MCP fleet — the tool plane

87 tools across 7 servers

  • pure-mcp core gateway + pure-comms / money / connect / mls / deploy
  • JSON-RPC 2.0 over Streamable HTTP, PURE_MCP_TOKEN auth
  • Reads free; risky writes approval-gated; kill-switch + rate-limit
  • Today Poppy's chat exposes 8; v2 opens the fleet, hat-scoped
Grounding — what she reasons over

Living sources of truth

  • pure_dictionary — 219 canon terms (PureGuard-enforced)
  • pure_memory — 216 keys, broadcast fresh every ~60s
  • pure_surfaces — registry of every surface she can open/act on
  • Board + deals + listings as live operational context
Layer · data feeds

External data she's fed

The listings spine is NTREIS via RETS only; enrichment feeds layer on top through edge functions + crons.

MLS — primary

NTREIS / RETS

phrets nightly ingest listings (1.49M, North TX, 329 counties). RESO failover parked for v4.

Property & owner

BatchData · RealEstateAPI

Full property + owner attributes by address enriched Property Record / AVM.

Local context

Census · Schools/ISD · Geo

TX demographics, district ratings, city/county/zip reference via crons.

Utility & leads

API Ninjas · Fello

Email validation, mortgage/tax data; home-value + seller-lead nurture.

Layer · edge, host & connectors

Identity, hosting, connectors & security

Identity & auth

One provider — Supabase Auth

  • Passkeys / WebAuthn first (webauthn-verify, pure-passkey)
  • Magic-link / OTP fallback via pure-comms
  • Step-up re-auth on money/deploy/PII via approval cards
Hosting & source

Static on Netlify + GitHub

  • acquisto.biz (Vite app) + app.acquisto.biz (static build)
  • Source: puremlstech/puremls @ Testin.MikeSupabase (auto-build ~30s)
  • Artifact versions tracked in pure_versions; deploy logged via deploy-hook
Connectors (Composio · 15)

External reach

follow_up_bosszohogoogle_mapsgoogle_analyticsgoogleadsmatterportfigmacanvagithubzoomapi_ninjasgtmetrixuptimerobotcursorsupabase
Secrets, scheduling & observability

The safety + heartbeat tier

  • Secrets in supabase_vault + edge env (key never client-side)
  • pg_cron 34 jobs + pure_mcp_jobs machine queue + autopilot
  • Storage buckets: asset-photos, expense-receipts
  • Monitoring: health-probe + watchdog crons, error-log, uptimerobot, gtmetrix
Foundation v2

What v2 adds to the foundation

v2 doesn't rebuild this base — it extends it. New tables join the same DB under the poppy_* namespace.

poppy_instances

Per-user gated instance registry — identity × hats × org × workspace.

poppy_memory

Per-user / per-deal memory, RLS-scoped to auth.uid.

poppy_model_routes

Best-model-per-task routing + live metering against the spend caps.

Already established this session: the poppy_* control plane (poppy_lifecycle, poppy_edit_log, poppy_technician). Manage it in the Poppy Control Center · baseline in the v1 System of Record